Many computer environments employ windows having graphical user interface (GUI) capabilities that aid the user in interacting with various applications in a straight-forward and intuitive manner. Whether the user is operating a stand-alone computer, a networked computer, or other equipment in the computer environment, graphical user interfaces presented in windows have become the environment of choice for many users rather than command line interfaces. The windows-based computer environment enables the user to access any number of computer applications simply by opening an appropriate window for the desired application.
Typically a user operating in a windows-based computer environment must open a new window each time that a new application is to be used. Many applications do not have all of the functionality needed to accomplish all aspects of a user's job (e.g. editing graphics). Assume that a user has two graphical editing applications, one application provides editing capabilities for vector graphics and the other provides editing of pixel-based graphics. If the user has been editing vector graphics with one application and now wants to edit pixel-based graphics, the user must first open a second graphics editing application in a new window. It is not currently possible to access the pixel-based graphics editing application from the open application for editing vector graphics since a separate window must be opened for each application. There is therefore a requirement of a one-to-one correspondence between a computer application and a window that supports the application. For anyone using a sizable number of windows-based applications, this means that the user must open a great number of windows.
A disadvantage of this requirement is that any open window must be managed by a window manager of the graphical user interface (GUI) that produces and drives windows on a display. A window manager is a software program or module that defines the parameters of windows and generates the windows. The more windows that are open in a computer environment, the more that overhead associated with window manager programs will slow down the operation of the environment. The excess of windows also creates cognitive overhead for the user in that they have to deal with minimizing, restoring, and moving windows to be able to interact with the separate applications.
Another common characteristic of graphical user interfaces, particularly for those addressing network systems and service management, is that they primarily provide a single view of objects and a single set of capabilities for manipulating the objects they present. Typically there is no means to see objects from different perspectives. For example, if a user is accessing an application to look at the configuration of a computer, they cannot easily see that same computer from the perspective of where it sits in a network and how it communicates with other computers. To do this users typically need to bring up separate applications and take actions to locate the desired object in both. And if the user can see the objects from different perspectives, the different perspectives and related functionality are typically intermixed causing an overload of functionality.
A somewhat less common aspect of graphical user interfaces is the use of information about the current context to aid the user in performing tasks. For instance, information on where the pointer is located when the mouse is clicked is used to filter pop-up menus. Information on the pointer position or specific location in an application is used to provide context sensitive help. However, there has been no attempt to use context at a higher level to provide users with different information sets or different perspectives on a given information set. User task performance would greatly benefit from an explicit mechanism by which users can designate the perspective they want to take in interacting with a set of applications. Applications could then use this contextual information to determine the type of data and functionality to be presented, the manner in which the data will be presented (e.g., different layouts based on the types of object relationships that are associated with the context), and the default parameters to be used (e.g., systems may be polled every 30 minutes in a system context to make sure they are up and running; however, in an application context they may be polled every 10 minutes to determine if the application is still running)
There is therefore an unmet need in the art to be able to minimize the number of windows that are required for related applications or application functionality. Additionally, there is an unmet need in the art to allow users to designate a context and have applications share relevant contextual information in such a way that will allow for the presentation of data and functionality based on the perspective associated with that context.